什麼是 command line?
命令列,是一種操縱電腦的媒介。
為何需要 command line?
操縱電腦的方式大致上分為兩種:
Command Line Interface (CLI)
Graphic User Interface (GUI)
一般使用電腦的時候我們通常都是透過 GUI,也就是圖形化介面,例如:我們右鍵新增資料夾的動作就是在點按 GUI 來達到跟電腦互動,請他幫我們建立資料夾的目的;而寫程式時有許多工具並不一定提供 GUI,那麼這時候我們就可以透過 CLI 這個方式,利用純文字去操控電腦。
常用的 CLI 指令
Print Working Directory (pwd)
用於印出目前所在工作目錄 (資料夾)。
(目前的所在目錄會以 "~" 表示。)List (ls)
列出目前所在工作目錄底下的所有檔案。Change Directory (cd)
切換資料夾。cd fileName => 進入 fileName 這個資料夾 (路徑) cd .. => 回到目前資料夾 (第一個點 ) 的上一層資料夾 (第二個點) cd 一串絕對路徑 => 將工作目錄直接切換到該絕對路徑
touch
建立檔案或更改檔案時間。touch 不存在的檔案 => 會將這個檔案建立到目前的目錄底下 touch 存在的檔案 => 會將這個檔案的最後修改時間更新到目前的時間
Remove (rm)
刪除檔案。rm 檔案名稱 => 刪除該檔案 rmdir 資料夾名稱 => 刪除該資料夾 rm -r 資料夾名稱 => 刪掉這資料夾底下的所有東西 **注意 rm 不可刪除資料夾**
Make Directory (mkdir)
mkdir 不存在的資料夾名稱 => 新建這個資料夾
Move (mv)
移動檔案或改名mv 要移動的檔案 要移入的資料夾 mv 要改名的檔案 要改的檔案名 (一個不是資料夾的東西)
將 text.txt 移動到 test 這個資料夾裡
Copy (cp)
複製檔案cp 要複製的檔案 複製後的檔案 cp -r 要複製的資料夾 複製後的資料夾
Cat
印出檔案內容
cat 檔案名稱
grep
抓出檔案中的關鍵字
grep 關鍵字 檔案名稱
weget
下載檔案,會將下載後的結果存到目前目錄底下
wget 網址
windows 安裝curl
送出 requestredirection
重新導向,將文字導入到檔案中。
舉例來說,在 shell script echo 字串,會在 terminal 印出字串
那麼可以使用指令:echo "hello world" > test.txt
,代表將 hello world 這個字串覆蓋整個 test.txt 檔案; 如果只是要 append 到最後方可改成使用 ">>"。pipe (|)
組合指令,將 "|" 左邊的輸出當作右邊的輸入,印出結果。
例如說:cat test.txt | grep "o" > result.txt
會將 test.txt 的內容傳遞到右邊當作輸入,抓出檔案中的關鍵字 "o",再將結果導向到 result.txt。
其他
clear
清除畫面
其他指令: 指令背後其實是一個程式,當下指令時就是在執行背後的程式,因此我們也能透過下載的方式新增指令。
查詢指令的參數 -> windows 沒有這個指令
使用指令 Manual (man) 可以查詢特定指令有支援的參數及使用方法。
man ls => 對 ls 這個指令做查詢
絕對路徑及相對路徑
絕對路徑就是完整的路徑,以 "/" 開頭
相對路徑就是相對於現在所在的路徑,以 "~" 開頭
Vim 文字編輯器
基本操作
vim 檔案名稱: 進到這個檔案編輯內容
i: 進入插入模式,這個模式之下才能插入文字
esc: 進入普通模式,這模式底下不能插入文字,可以刪除或複製文字。
:q (在普通模式底下): 可以退出檔案,這時候沒有存檔,可按y/n選擇是否存檔。
:wq (在普通模式底下): 存檔後退出。
reference:
Lidemy [CMD101]